// components/show-pop/show-pop.js
import tool from "../../utils/publics/tool"
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 弹框类型
    type: {
      type: Number,
      value: 0
    },
    // 开关动画 true 
    show: {
      type: Boolean,
      value: true,
      // 关闭弹框  动画结束后关闭
      observer(v) {
        if (v) {
          this.setData({
            vShow: v
          })
        } else {
          this.data.timer = setTimeout(() => {
            this.setData({
              vShow: v
            })
            // 定时器时间关联动画过渡时间
          }, 500)
        }
      }
    },
    // 弹出位置
    position: {
      type: String,
      value: 'center',
    },
    // 内容Y轴位置调整
    axisY: {
      type: String
    },
    // 遮罩层样式 默认设置背景黑色
    overlayStyle: {
      type: String,
      value: "background-color:rgba(0, 0, 0, 0.7);"
    },
    // 遮罩层层级
    zIndex: {
      type: Number,
      value: 100
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    vShow: false, //关闭弹框 动画结束后 500ms 关闭 确保 使用 hidden 而非 wx:if 判断 动画执行 / 确保首次关闭弹框
    timer: null, //开关定时器
    code: '', // 兑换码
    peer: {
      extra_name: '', // 额外姓名  
      extra_mobile: '', // 额外手机号  
      extra_card_no: '', //额外身份证  
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 点击遮罩层
    clickoverlay() {
      this.triggerEvent('clickoverlay')
    },
    // 空函数
    empty() {
      return
    },
    // 关闭弹框
    close() {
      this.triggerEvent('close')
    },
    // 直接购买
    buy(e) {
      let type = e.currentTarget.dataset.type; // 1-单独购买 2-双人购买 3-拼团购买 4-兑换码兑换
      let code = this.data.code;
      if (type == 4) {
        if (!code) return tool.alert("请输入兑换码")
      }
      this.triggerEvent('buy', {
        type,
        code
      })
    },
    // 扫一扫
    scan() {
      let this_ = this;
      wx.scanCode({
        success(res) {
          console.log(res)
          this_.setData({
            code: res.result
          })
        }
      })
    },
    // 输入框监听
    bindinput(e) {
      let key = e.currentTarget.dataset.name;
      let value = e.detail.value;
      let peer = this.data.peer;
      peer[key] = value;
      this.setData({
        peer
      })

    },
    // 确认通行人信息
    confim() {
      let peer = this.data.peer;
      let regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; // 身份证正则验证
      let regPhone = /^1\d{10}$/; // 验证手机号码
      for (var k in peer) {
        if (!peer[k]) return tool.alert("请填写信息");
      };
      if (!regIdNo.test(peer.extra_card_no)) return tool.alert("请输入正确的身份证号");
      if (!regPhone.test(peer.extra_mobile)) return tool.alert("请输入正确的手机号");
      this.triggerEvent('confim', {
        peer
      })
    },
  }
})